SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDFINA_BANC_I01]    
/*-------------------------------------------------------*/     
/*---Empresa              : OFISIS S.A.                --*/     
/*---Cliente              : OFISIS                 --*/     
/*---Sistema              : Tesoreria                  --*/     
/*---Mödulo               : Empresa                    --*/     
/*---Programa             : Grabaciön Detalle          --*/     
/*---                       Financiamientos Bancarios  --*/       
/*---Script               : SP_TDFINA_BANC_I01.sql              --*/     
/*---Nombre SP            : SP_TDFINA_BANC_I01         --*/     
/*---Desarrollado por     : Reynaldo Menacho L.        --*/     
/*---Fecha Creaciön       : 14/06/2004                 --*/     
/*---Base Datos           : Microsoft Sql Server       --*/     
/*---Versiön              : 2000                        --*/     
/*---Invoca a SP          :                            --*/     
/*-------------------------------------------------------*/     
     
/*-------------------------------------------------------*/     
/*---Modificado 1 por     : Carlos Marquez  E.  --*/     
/*---Fecha Modificaciön   : 18/01/2005    --*/      
/*---Detalle Modificaciön : Estandarizacion   --*/     
/*-------------------------------------------------------*/     
/*-------------------------------------------------------*/     
/*---Comentarios                                       --*/     
/*---                                                  --*/     
/*---                                                  --*/     
/*-------------------------------------------------------*/     
/*-------------------------------------------------------*/     
/*--- Drop Proc SP_TDFINA_BANC_I01                      --*/     
/*--- Grant Execute on SP_TDFINA_BANC_I01 to public         --*/      
/*--- SP_TDFINA_BANC_I01                              --*/     
/*-------------------------------------------------------*/     
 @ISCO_EMPR   TD_VC_002,      
 @ISCO_USUA_MODI  TD_VC_008_USUA,     
 @ISCO_BANC   TD_VC_003,      
 @ISCO_TIPO_FINA  TD_VC_020,     
 @ISNU_COMP_FINA  TD_VC_008,      
 @INNU_SECU   TD_IN_001,     
 @ISTI_ENTI   TD_VC_001,     
 @ISCO_ENTI   TD_VC_020,     
 @ISTI_DOCU_ENTI  TD_VC_003,     
 @ISNU_DOCU_ENTI  TD_VC_020,     
 @ISNU_UNIC_BANC TD_VC_020,     
 @ISCO_COND_FINA  TD_VC_003,       
 @ISCO_MONE_DOCU  TD_VC_003,     
 @INFA_CAMB_EXTR TD_NU_015_006,     
 @INIM_DOCU   TD_NU_016_004,     
 @INIM_SALD_DOCU  TD_NU_016_004,     
 @INIM_FINA   TD_NU_016_004,     
 @INIM_CONV_DOCU  TD_NU_016_004,    
 @IDFE_VENC  TD_DT_001    ,
 @IDFE_DOCU	 	TD_DT_001    ,
 @IDFE_SALI_EMBQ  TD_DT_001  
     
 as     
       
 Declare      
    @VNNU_SECU TD_IN_001,     @VNIM_TOTA_DETA  TD_NU_016_004,  @VNIM_TOTA TD_NU_016_004     
     
 Begin Tran SP_TDFINA_BANC_I01     
     
 If @INNU_SECU IS NULL     
 Begin     
  Select @VNNU_SECU = Isnull(Max(NU_SECU), 0)    
  From   TDFINA_BANC     
  Where CO_EMPR = @ISCO_EMPR     
  and    CO_BANC = @ISCO_BANC     
  and    CO_TIPO_FINA = @ISCO_TIPO_FINA     
  and    NU_COMP_FINA = @ISNU_COMP_FINA     
     
  If @VNNU_SECU > 0     
   Select @VNNU_SECU = @VNNU_SECU + 1     
  Else     
   Select @VNNU_SECU = 1        
      
  Insert Into TDFINA_BANC (CO_EMPR, CO_BANC, CO_TIPO_FINA, NU_COMP_FINA, NU_SECU,      
     TI_ENTI, CO_ENTI, TI_DOCU_ENTI, NU_DOCU_ENTI,     
     CO_MONE_DOCU, FA_CAMB_EXTR, IM_DOCU, IM_SALD_DOCU, IM_FINA, IM_CONV_DOCU,
	FE_DOCU, FE_VENC, FE_SALI_EMBQ )     
  Values (@ISCO_EMPR, @ISCO_BANC, @ISCO_TIPO_FINA, @ISNU_COMP_FINA, @VNNU_SECU,      
    @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,      
    @ISCO_MONE_DOCU, @INFA_CAMB_EXTR, @INIM_DOCU, @INIM_SALD_DOCU, @INIM_FINA,      
    @INIM_CONV_DOCU, 
    @IDFE_DOCU, @IDFE_VENC, @IDFE_SALI_EMBQ)     
      
  If @@error <> 0     
  Begin     
   Rollback tran SP_TDFINA_BANC_I01    
   Return     
  End
------
Update TDFINA_BANC
Set TDFINA_BANC.CO_GRUP_ECON = t1.CO_GRUP_ECON
From TMCLIE t1, TDFINA_BANC
Where  TDFINA_BANC.CO_EMPR = @ISCO_EMPR
And TDFINA_BANC.CO_BANC = @ISCO_BANC
And TDFINA_BANC.CO_TIPO_FINA = @ISCO_TIPO_FINA
And TDFINA_BANC.NU_COMP_FINA = @ISNU_COMP_FINA
And TDFINA_BANC.NU_SECU = @VNNU_SECU
And t1.CO_EMPR = TDFINA_BANC.CO_EMPR
And t1.CO_CLIE = TDFINA_BANC.CO_ENTI

  If @@error <> 0     
  Begin     
   Rollback tran SP_TDFINA_BANC_I01    
   Return     
  End

-----         
 End     
 Else      
 Begin     
  Update TDFINA_BANC      
  Set IM_FINA = @INIM_FINA,     
  IM_CONV_DOCU = @INIM_CONV_DOCU,     
  FA_CAMB_EXTR = @INFA_CAMB_EXTR,     
  FE_USUA_MODI = getdate(),     
  CO_USUA_MODI = @ISCO_USUA_MODI     
  Where CO_EMPR = @ISCO_EMPR     
  And   CO_BANC = @ISCO_BANC     
  And   CO_TIPO_FINA = @ISCO_TIPO_FINA     
  And   NU_COMP_FINA = @ISNU_COMP_FINA     
  And   NU_SECU = @INNU_SECU     
      
  If @@error <> 0     
  Begin      
   Rollback tran     
   Return     
  End         
 End     
     
 Update TMDOCU_CLIE     
 Set NU_UNIC_BANC = @ISNU_UNIC_BANC,     
  CO_COND_FINA = @ISCO_COND_FINA,    
  CO_BANC = @ISCO_BANC,     
  FE_VENC = @IDFE_VENC,    
  CO_TIPO_FINA = @ISCO_TIPO_FINA,     
  FE_USUA_MODI = getdate(),     
  CO_USUA_MODI = @ISCO_USUA_MODI     
 Where CO_EMPR = @ISCO_EMPR     
 And   CO_CLIE = @ISCO_ENTI     
 And   CO_TIPO_DOCU = @ISTI_DOCU_ENTI     
 And   NU_DOCU_CLIE = @ISNU_DOCU_ENTI     
     
 If @@error <> 0     
 Begin     
  Rollback tran SP_TDFINA_BANC_I01    
  Return     
 End         
     
 /* Sumo todos los documentos de clientes */     
 Select @VNIM_TOTA_DETA = Isnull(Sum(Isnull(IM_FINA,0)),0)     
 From TDFINA_BANC     
 Where CO_EMPR = @ISCO_EMPR     
 And   CO_BANC = @ISCO_BANC     
 And   CO_TIPO_FINA = @ISCO_TIPO_FINA     
 And   NU_COMP_FINA = @ISNU_COMP_FINA     
     
 Select  @VNIM_TOTA = isnull(@VNIM_TOTA_DETA,0)     
   
 -------------------  
If @ISTI_DOCU_ENTI != 'OPR'  
Begin     
  Update TCFINA_BANC     
  Set IM_FINA = Round(@VNIM_TOTA,2),     
       
   CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()              
  Where CO_EMPR = @ISCO_EMPR      
  And   CO_BANC = @ISCO_BANC      
  And   CO_TIPO_FINA = @ISCO_TIPO_FINA      
  And   NU_COMP_FINA = @ISNU_COMP_FINA      
      
  If @@error <> 0     
  Begin     
   Rollback tran SP_TDFINA_BANC_I01    
   Return     
  End       
End  
--------------------     
     
commit tran  SP_TDFINA_BANC_I01    
/*------------------------ Fin ------------------------------*/


GO
